package com.jwds.digital.bios.business.core.infrastructure.dto.feign.model;

import lombok.Data;

import java.math.BigDecimal;

/**
 * 流程控制模型数据实体
 *
 * @Author hesong
 */
@Data
public class FlowPlcDTO extends ModelDataBase {
    /**
     * 下游设备数量
     */
    private BigDecimal nextEquipNum = BigDecimal.ZERO;

    /**
     * 下游设备编号1
     */
    private BigDecimal nextEquipNo1 = BigDecimal.ZERO;

    /**
     * 下游设备编号2
     */
    private BigDecimal nextEquipNo2 = BigDecimal.ZERO;

    /**
     * 下游设备编号3
     */
    private BigDecimal nextEquipNo3 = BigDecimal.ZERO;

    /**
     * 切换点下游设备数量
     */
    private BigDecimal swiNextEquipNum = BigDecimal.ZERO;

    /**
     * 切换点下游设备编号1
     */
    private BigDecimal swiNextEquipNo1 = BigDecimal.ZERO;

    /**
     * 切换点下游设备编号2
     */
    private BigDecimal swiNextEquipNo2 = BigDecimal.ZERO;

    /**
     * 切换点下游设备编号3
     */
    private BigDecimal swiNextEquipNo3 = BigDecimal.ZERO;


    /****************ST-WORD****************/
    /**
     * 是否准备好
     */
    private Boolean ready = false;
    /**
     * 是否自动
     */
    private Boolean auto = false;
    /**
     * 是否运行
     */
    private Boolean run = false;
    /**
     * 是否运行稳定
     */
    private Boolean runOk = false;
    /**
     * 位置方向ok
     */
    private Boolean pdOk = false;
    /**
     * 源头给料中
     */
    private Boolean srcFed = false;
    /**
     * 是否槽组
     */
    private Boolean binGrp = false;
    /**
     * 是否为取料机
     */
    private Boolean rec = false;


    /****************CT-WORD****************/
    /**
     * 自动启动
     */
    private Boolean autoStart = false;
    /**
     * 自动停止
     */
    private Boolean autoStop = false;
    /**
     * 自动预警
     */
    private Boolean warn = false;
    /**
     * 占用
     */
    private Boolean occ = false;
    /**
     * 方向需求
     */
    private Boolean dirReq = false;
    /**
     * 有料
     */
    private Boolean hasMat = false;
    /**
     * 允许源头给料
     */
    private Boolean alSrcFed = false;

    /**
     * 给料中
     */
    private Boolean feeding = false;

    /**
     * 排料中
     */
    private Boolean discharge = false;

    /**
     * 顺启条件
     */
    private Boolean ascStaCon = false;

    /**
     * 联锁条件（下游准备好）
     */
    private Boolean linkCon = false;

    /**
     * 逆启条件
     */
    private Boolean invStaCon = false;

    /**
     * 上游设备有料
     */
    private Boolean befHasMat = false;


    /****************CM-Matrix****************/
    /**
     * 是否切换点设备
     */
    private Boolean swiDev = false;
    /**
     * 是否首设备
     */
    private Boolean firstDev = false;

    /**
     * 是否带料切换
     */
    private Boolean swiWithMat = false;

    /**
     * 启动方式  True：逆启；False：顺启
     */
    private Boolean startStyle = false;
    /**
     * 停止方式,True：紧停；False：顺停
     */
    private Boolean stopStyle = false;


    /****************CM-Matrix****************/
    /**
     * 是否具有启动指令
     */
    private Boolean hasStartCmd = false;
    /**
     * 是否具有停止指令
     */
    private Boolean hasStopCmd = false;
    /**
     * 是否具有释放指令
     */
    private Boolean releaseCmd = false;

    /**
     * 是否具有控制指令
     */
    private Boolean hasCmd = false;


    /**
     * 上一周期启动指令
     */
    private Boolean lastStartCmd = false;
    /**
     * 上一周期停止指令
     */
    private Boolean lastStopCmd = false;
    /**
     * 上一周期释放指令
     */
    private Boolean lastRelCmd = false;
}
